package cz.muni.fi.pv112.cranesimulator.models;

import cz.muni.fi.pv112.cranesimulator.utils.handlers.opengl.DisplayListStorable;
import cz.muni.fi.pv112.cranesimulator.utils.loaders.ObjLoaderInterface;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Michal Ďuriš
 */
public class OBJModel implements ObjLoaderInterface, DisplayListStorable {

    protected List<float[]> vertices;
    protected List<int[]> vertexIndices;

    protected List<float[]> textures;
    protected List<int[]> textureIndices;

    protected List<float[]> normals;
    protected List<int[]> normalIndices;

    protected String path;

    protected int displayListID;

    public OBJModel() {

        vertices = new ArrayList<>();
        vertexIndices = new ArrayList<>();

        textures = new ArrayList<>();
        textureIndices = new ArrayList<>();

        normals = new ArrayList<>();
        normalIndices = new ArrayList<>();
    }

    public List<float[]> getVertices() {
        return vertices;
    }

    public List<int[]> getVertexIndices() {
        return vertexIndices;
    }

    public List<float[]> getTextures() {
        return textures;
    }

    public List<int[]> getTextureIndices() {
        return textureIndices;
    }

    public List<float[]> getNormals() {
        return normals;
    }

    public List<int[]> getNormalIndices() {
        return normalIndices;
    }

    @Override
    public int getDisplayListID() {
        return displayListID;
    }

    @Override
    public void setDisplayListID(int displayListID) {
        this.displayListID = displayListID;
    }

    @Override
    public String getPath() {
        return path;
    }

    @Override
    public void setPath(String path) {
        this.path = path;
    }

}
